package com.java.base.exercise.annonation;

import java.lang.annotation.*;

/**
 * @Author RenPu
 * @Date 2023/10/3 14:58
 * @Version 1.0
 * @Description: 注解结合反射的运用
 **/

//@Target 注解的用用范围如下：
//TYPE:表示可以用来修饰类、接口、注解类型或枚举类型PACKAGE:可以用来修饰包
//PARAMETER:可以用来修饰参数;
//ANNOTATIONTYPE:可以用来修饰注解类型
//METHOD:可以用来修饰方法
//FIELD:可以用来修饰属性 (包括枚举常量);
//CONSTRUCTOR:可以用来修饰构造器;
//LOCALVARIABLE:可用来修饰局部变量
@Target({ElementType.FIELD,ElementType.METHOD,ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME) //定义注解的生命周期
@Inherited //子类是否可以继承此注解
@Documented //文档注解，会被javadoc工具文档化
public @interface Knowledge {
  String name() default "不良人";   //支持java的所有基本类型
  String[] meters();

}
